package cn.gok.oa.util;


import cn.gok.oa.system.entity.TbMenu;
import cn.gok.oa.system.entity.TbMenuRole;
import cn.gok.oa.system.vo.MenuVo;
import org.springframework.beans.BeanUtils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class JsonUtil {
    public static List<MenuVo> sendJson(List<TbMenu> allTbMenu){
        List<MenuVo> menuVos =  new ArrayList<>();
        for (int i=0;i<allTbMenu.size();i++){
            MenuVo menuVo = new MenuVo();
            BeanUtils.copyProperties(allTbMenu.get(i),menuVo);
//                menuVo.setChildren(menus.get(i).getChildren());
            menuVos.add(menuVo);
        }
        List<MenuVo> totalType = new ArrayList<>();
        //使用map来装前面查到的所有数据
        Map<Integer, MenuVo> map = new HashMap<>();

        for (MenuVo p:menuVos){
            map.put(p.getId(),p);
        }

        //遍历所有类型，如果是最顶级父类型就直接装, 然后用这个父类型的children集合取装取当前数据

        for(MenuVo p:menuVos){
            if(p.getParentId()==0){
                totalType.add(p);
            }else{
                MenuVo parents=map.get(p.getParentId());
                parents.getChildren().add(p);
            }
        }
        return totalType;
    }
//    public static List<TbMenuRole> receiveJson(List<TbMenu> allTbMenu, int role_id, int create_id){
//        List<TbMenuRole> totalType = new ArrayList<>();
//        for (int i = 0; i < allTbMenu.size(); i++) {
//            totalType.add(new TbMenuRole(0,role_id,allTbMenu.get(i).getId()));
//            for (int j = 0; j < allTbMenu.get(i).getChildrenList().size(); j++) {
//                totalType.add(new TbMenuRole(0,role_id,allTbMenu.get(i).getChildrenList().get(j).getId()));
//            }
//        }
//        return totalType;
//    }

}
